#!/bin/bash

# Clash 安装脚本
# 适用于 Linux 系统

# 定义变量
CLASH_VERSION="v1.18.0" # 可根据需要调整版本
# CLASH_DOWNLOAD_URL="https://github.com/Dreamacro/clash/releases/download/${CLASH_VERSION}/clash-linux-amd64-v3.tar.gz"
CLASH_DOWNLOAD_URL="https://github.com/DustinWin/proxy-tools/releases/download/Clash-Premium/clashpremium-nightly-linux-amd64.tar.gz"
INSTALL_DIR="/usr/local/bin"
CONFIG_DIR="$HOME/.config/clash"
SERVICE_FILE="/etc/systemd/system/clash.service"

# 检查是否为 root 用户
if [ "$EUID" -ne 0 ]; then
    echo "❌ 请使用 root 用户或使用 sudo 运行此脚本。"
    exit 1
fi

# 检查依赖项
echo "🔍 检查依赖项..."
command -v curl >/dev/null 2>&1 || { echo "❌ curl 未安装，请先安装 curl"; exit 1; }
command -v tar >/dev/null 2>&1 || { echo "❌ tar 未安装，请先安装 tar"; exit 1; }
echo "🔍 下载地址...${CLASH_DOWNLOAD_URL}"

# # 下载 Clash
# echo "⬇️ 正在下载 Clash..."
# curl -L -o clash.tar.gz "$CLASH_DOWNLOAD_URL"

# if [[ $? -ne 0 ]]; then
#     echo "❌ Clash 下载失败，请检查网络连接或下载链接。"
#     exit 1
# fi

# 解压 Clash
echo "📦 解压 Clash..."
tar -zxvf clash.tar.gz -C "$INSTALL_DIR"
chmod +x "$INSTALL_DIR/clash"

# 清理安装包
# rm -f clash.tar.gz

# 创建配置目录
echo "📂 创建 Clash 配置目录..."
mkdir -p "$CONFIG_DIR"

# 创建示例配置文件
if [ ! -f "$CONFIG_DIR/config.yaml" ]; then
    echo "📝 创建默认配置文件..."
    cat > "$CONFIG_DIR/config.yaml" <<EOF
port: 7890
socks-port: 7891
allow-lan: true
mode: Rule
log-level: info
external-controller: 127.0.0.1:9090
secret: ""
EOF
fi

# 创建 Systemd 服务文件
echo "⚙️ 配置 Clash 服务..."
cat > "$SERVICE_FILE" <<EOF
[Unit]
Description=Clash Daemon
After=network.target

[Service]
Type=simple
User=root
ExecStart=${INSTALL_DIR}/clash -d ${CONFIG_DIR}
Restart=on-failure
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

# 重新加载 Systemd 并启动 Clash 服务
echo "🚀 启动 Clash 服务..."
systemctl daemon-reload
systemctl enable clash
systemctl start clash

# 检查 Clash 服务状态
sleep 3
if systemctl is-active --quiet clash; then
    echo "✅ Clash 安装并启动成功！"
    echo "🔗 配置文件路径: $CONFIG_DIR/config.yaml"
    echo "📊 控制面板地址: http://127.0.0.1:9090"
else
    echo "❌ Clash 启动失败，请检查日志: sudo journalctl -u clash"
fi
